\chapter{QWebEngineView}

QWebEngineView类提供了一个widget, 被使用去查看和编辑web元素。

\begin{tabular}{|r|l|}
	\hline
	属性 & 方法 \\
	\hline
	头文件 & \#include <QWebEngineView>\\      
	\hline
	qmake & QT += webenginewidgets\\      
	\hline
	继承: & QWidget\\
	\hline
\end{tabular}

\section{特性}

\begin{tabular}{|r|l|}
	\hline
	属性名 & 类型 \\
	\hline
	hasSelection&	const bool \\
	\hline
	title	&const QString\\
	\hline
	icon	&const QIcon\\
	\hline
	zoomFactor&	qreal\\
	\hline
	selectedText&	const QString\\
	\hline
\end{tabular}

\section{公共成员函数}

% \resizebox{\textwidth}{!}{
% \begin{tabular}{|r|l|}
\begin{longtable}[l]{|l|m{25em}|}
\hline
类型&  函数名\\
\hline
&	QWebEngineView(QWidget *parent = Q\_NULLPTR)] \\
\hline
virtual	& $\sim$QWebEngineView() \\
\hline
void	& findText(const QString \&subString, QWebEnginePage::FindFlags options = ..., const QWebEngineCallback \&resultCallback = ...)] \\
\hline
bool &	hasSelection() const\\
\hline
QWebEngineHostory * &	history() const\\
\hline
QIcon &	icon() const\\
\hline
QUrl&	iconUrl() const\\
\hline
void&	load(const QUrl \&url)\\
\hline
void&	load(const  QWebEngineHttpRequest \&request)
QWebEnginePage *page() const\\
\hline
QAction * &	pageAction(QWebEnginePage::WebAction action) const \\
\hline
QString	&selectedText() const\\
\hline
void&	setContent(const QByteArray \&data, const QString \&mimeType = QString(), const QUrl \&baseUrl = QUrl()) \\
\hline
void &	setHtml(const QString \&html, const QUrl \&baseUrl = QUrl())\\
\hline
void &	setPage(QWebEnginePage *page) \\
\hline
void &	setUrl(const QUrl \&url) \\
\hline 
void &	setZoomFactor(qreal factor) \\
\hline
QWebEngineSettings * &	settings() const \\
\hline
QString	&title() const \\
\hline
void &	triggerPageAction(QWebEnginePage::WebAction action, bool checked = false)\\
\hline
QUrl &	url() const\\
\hline
qreal&	zoomFactor() const\\
\hline
\end{longtable}

重实现公共成员函数

virtual QSize sizeHint() const override

\begin{compactitem}
\item 216 个公共成员函数继承自 QWidget
\item 31 个公共成员函数继承自 QObject
\item 14 个公共成员函数继承自 QPaintDevice
\end{compactitem}

\section{公有槽函数}

\begin{tabular}{|r|l|}
	\hline
	类型&  函数名\\
	\hline
	void&	back()\\
	\hline
	void&	forward()\\
	\hline
	void&	reload()\\
	\hline
	void&	stop()\\
	\hline
\end{tabular}


\begin{compactitem}
\item 19 个公共槽函数继承自 QWidget
\item 1 个公共槽函数继承自 QObject
\end{compactitem}


\section{信号}

\resizebox{\textwidth}{!}{
\begin{tabular}{|r|l|}
% \begin{longtable}[l]{|l|m{30em}|}
\hline
类型&  函数名\\
\hline
void&	iconChanged(const QIcon \&icon)\\
\hline
void&	iconUrlChanged(const QUrl \&url)\\
\hline
void&	iconUrlChanged(const QUrl \&url)\\
\hline
void&	loadProgress(int progress)\\
\hline
void&	loadStarted() \\
\hline
void &	renderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus, int exitCode)\\
\hline
void &	selectionChanged()\\
\hline
void&	titleChanged(const QString \&title)\\
\hline
void&	urlChanged(const QUrl \&url)\\
\hline
% \end{longtable}
\end{tabular}}

\begin{compactitem}
\item 3 信号继承自 QWidget
\item 2 信号继承自 QObject
\end{compactitem}

\section{静态公有成员函数}

\begin{compactitem}
\item 5 个静态公有成员函数继承自 QWidget
\item 9 个静态公有成员函数 QObject
\end{compactitem}

\section{保护成员函数}


virtual QWebEngineView * createWindow(QWebEnginePage::WebWindowType \emph{type})

重实现保护成员函数

\begin{tabular}{|r|l|}
	\hline
	类型&  函数名\\
	\hline
vitrual void&	contextMenuEvent(QContextMenuEvent *event) override\\
	\hline
virtual void&	dragEnterEvent(QDragEnterEvent *e) override\\
	\hline
virtual void&	dragLeaveEvent(QDragLeaveEvent *e) override\\
	\hline
virtual void&	dragMoveEvent(QDragMoveEvent *e) override\\
	\hline
virtual void&	dropEvent(QDropEvent *e) override\\
	\hline
virtual bool&	event(QEvent *ev) override\\
	\hline
virtual void&	hideEvent(QHideEvent *event) override\\
	\hline
virtual void&	showEvent(QShowEvent *event) override \\
	\hline
\end{tabular}

\begin{compactitem}
\item 35 个保护成员函数继承自 QWidget	
\item 9 个保护成员函数继承自 QObject	
\item 1 个保护成员函数继承自 QPaintDevice
\end{compactitem}

额外继承成员

\begin{compactitem}
	\item 一个保护槽继承自QWidget
\end{compactitem}

\section{详细描述}

QWebEngineView类提供了一个小部件, 被用去查看和编辑web文档。

一个web视图是组成Qt WebEngine web 浏览模块的主要widget之一。它可以被用于多种应用去展示来自Internet的web内容。

一个web元素可以通过\href{https://github.com/QtDocumentCN/QtDocumentCN/blob/master/Src/W/QWebEngineView}{load()}函数加载到web视图。一般总是使用Get方法去加载URLs.

像所有Qt小部件一样，必须调用\href{https://github.com/QtDocumentCN/QtDocumentCN/blob/master/Src/W/QWebEngineView}{show()}函数才能显示Web视图。 下面的代码段说明了这一点：

\begin{cppcode}
QWebEngineView *view = new QWebEngineView(parent);
view->load(QUrl("http://qt-project.org/"));
view->show();
\end{cppcode}

或者, setUrl() 可以被使用去加载web元素。如果你有可读的 HTML 内容，你可以使用setHtml() 代替。

当视图开始加载的时候，发出loadStarted() 信号，当web视图的一个元素被完整加载的时候，发出loadProgress()信号，例如一个embedded 图像或一个脚本。当视图被完整加载时，发出loadFinished()信号。其参数true或false指示加载是成功还是失败。

page()函数返回一个指向web页对象的指针。一个QWebEngineView 包含一个QWebEnginePage, 允许依次访问QWebEnginePage在页的内容里。HTML文档的标题可以用title()属性访问。另外，一个web元素可能是一个图标， 可以使用icon()访问，使用 iconUrl()访问图标的URL。如果标题或是图标改变，将发出titleChanged(), iconChanged() 和 iconUrlChanged()信号来回应。zoomFactor()属性通过缩放因子，能够缩放web页的内容。

该小部件适合于上下文菜单并包含在浏览器中有用的操作。对于自定义上下文菜单，或将动作嵌入菜单或工具栏中，可通过pageAction()获得单个动作。web视图维护返回动作的状态，但允许修改动作属性，例如text or icon. 动作语义也可以通过 triggerPageAction()直接触发。

对于web元素，如果你想要提供 支持允许用户去打开新的窗口，例如pop-up windows, 你可以子类化QWebEngineView 和实现 createWindow() 函数。


\begin{seeAlso}
WebEngine Widgets Simple Browser Example、WebEngine Content Manipulation Example 和 WebEngine Markdown Editor Example。
\end{seeAlso}


\section{特性文档编制}

\begin{tabular}{|r|l|}
	\hline
	属性名&  类型\\
	\hline
	hasSelection&	const bool\\
	\hline
\end{tabular}

此属性保存此页面是否包含所选内容。 默认情况下，此属性为false。

\section{访问函数}

\begin{tabular}{|r|l|}
	\hline
	bool&  hasSelection() const\\
	\hline
\end{tabular}

\begin{seeAlso}
	\href{https://doc.qt.io/qt-5/qwebengineview.html#selectionChanged}{selectionChanged()}
\end{seeAlso}

icon : const QIcon








